var Pagina = new Class({
    initialize: function()
    {
        this.texts = [];
        this.collition_areas = [];
        this.current_box = null;
        this.current_text = "";
        this.current_index = -1;
    },

    addText: function(donde, dialogo)
    {
        if(donde[0].x < 0 || donde[0].y < 0 ||
           donde[1].x < 0 || donde[0].y < 0){
            alert("Donde tiene un valor menor a 0" + dialogo);
        }
        if(donde[0].x > 1 || donde[0].y > 1 ||
           donde[1].x > 1 || donde[0].y > 1){
            alert("Donde tiene un valor mayor a 1" + dialogo);
        }
        //var aux_donde = [donde[0], donde[1]];

        if(donde[0].x > donde[1].x){
            var tmp = donde[1].x;
            donde[1].x = donde[0].x;
            donde[0].x = tmp;
        }
        if(donde[0].y > donde[1].y){
            var tmp = donde[1].y;
            donde[1].y = donde[0].y;
            donde[0].y = tmp;
        }

        this.collition_areas.push(donde);
        this.texts.push(dialogo);
    },

    getText: function()
    {
        return this.current_text;
    },

    collitionInCurrentBox: function(box)
    {
        var in_box = this.current_box;
        var x = box.x;
        var y = box.y;

        return in_box != null &&
               (x >= in_box[0].x && x <= in_box[1].x &&
                y >= in_box[0].y && y <= in_box[1].y);
    },

    /**
     * Buscar el cuadro de diálogo donde se dice que hay algo escrito.
     * Retorna verdadero si se encuentra dicho cuadro, o falso en caso
     * contrario.
     * Para recuperar el texto, se puede usar la función getText()
     */
    findCurrentBox: function(box)
    {
        if(this.collitionInCurrentBox(box)){
            /* No es necesario cambiar el cuadro actual */
            return true;
        }

        var i = this.collition_areas.length - 1;

        while(i >= 0) {
            this.current_box = this.collition_areas[i];
            if(this.collitionInCurrentBox(box)){
                /* Se ha encontrado la collition box. Salir */
                this.current_index = i;
                this.current_text = this.texts[i];
                return true;
            }
            --i;
        }

        this.current_box = null;
        this.current_text = "";
        this.current_index = -1;
        return false;
    }
});

